export class snowflakeIdv1Option {
  /**
   * 雪花计算方法，（1-漂移算法|2-传统算法），默认 1
   */
  method?: number = 1

  /**
   * 机器码，必须由外部设定，最大值 2^WorkerIdBitLength-1
   */
  workerId: number = 1

  /**
   * 机器码位长，默认值 6，取值范围 [1, 15](要求：序列数位长+机器码位长不超过 22)
   */
  workerIdBitLength?: number = 6

  /**
   * 基础时间（ms 单位），不能超过当前系统时间， 默认2020年1月1日
   */
  baseTime?: number = 1577836800000

  /**
   * 最大序列数（含），设置范围 [MinSeqNumber, 2^SeqBitLength-1]，默认值 0，表示最大序列数取最大值（2^SeqBitLength-1]）
   */
  maxSeqNumber?: number = undefined

  /**
   * 最小序列数（含），默认值 5，取值范围 [5, MaxSeqNumber]，每毫秒的前 5 个序列数对应编号 0-4 是保留位，其中 1-4 是时间回拨相应预留位，0 是手工新值预留位
   */
  minSeqNumber?: number = 5

  /**
   * 序列数位长，默认值 6，取值范围 [3, 21](要求：序列数位长+机器码位长不超过 22)
   */
  seqBitLength?: number = 6

  /**
   * 最大漂移次数（含），默认 2000，推荐范围 500-10000（与计算能力有关）
   */
  topOverCostCount?: number = 2000
}
